因為最近剛好組了一台新電腦,需要重新建置 Laravel Homestead 的環境,藉這個機會重新設定一次並記錄過程,順便幫自己釐清之前不清楚的觀念,也希望能幫助到在 windows 上建置環境遇到困難的朋友,讓我們開始吧,Let's Go。
引用官網的介紹:
Laravel Homestead 是一個官方,預先打包好的 Vagrant Box,為您提供了一個美妙的開發環境,無需在本地端上安裝 PHP,Web服務器和任何其他服務器軟件。不用再擔心搞亂你的操作系統了! Vagrant Box 完全是一次性的。如果出現問題,你可以在幾分鐘內銷毀並重新創建虛擬機器!
重新啟動 windows 進入 bios,打開 hardware virtualization (VT-x) 。
強烈建議不要使用中文名,使用 vagrant 指令和產生 ssh key 很容易踩雷。
首先我們要先下載 VirtualBox,請到官網按下大大的 Download 按鈕吧。
接著選擇 Windows hosts 版本進行下載,然後就執行安裝檔下一步案到底吧。
點擊圖示可以看到下方畫面,VirtualBox 就算安裝成功了。
從官方網站下載並安裝 Vagrant,請選擇 windows 64-bit 版本,一樣執行安裝檔後下一步案到底。
重啟電腦後,執行終端機 cmd,輸入指令測試 vagrant 安裝結果:
vagrant --version
我們要透過 vagrant 指令,安裝 laravel/homestead 虛擬機:
vagrant box add laravel/homestead
過程中會詢問您的 provider,請輸入 3 (virtualbox) 後開始下載。因為檔案有點大,會視網路速度花一點時間。完成後,可以用下面指令確認是否完成:
vagrant box list
由於 Homestead 把設定檔、工具指令等等都以 git 儲存庫來做管理,所以本機端需要有 git 版本管理系統。若您的本機端上還沒有安裝完成,請先至官網下載/安裝。
複製 Homestead 設定工具的方式,就是去 Laravel 官方的 Github 把儲存庫複製 (clone) 回來:
git clone https://github.com/laravel/homestead.git Homestead
您可以在 GitHub 發布頁面上找到最新的穩定版本,透過 git 的 checkout 指令切到 7.20.0 版:
cd Homestead
git checkout v7.20.0
官方將所有 Homestead 可以調整的設定獨立成 Homestead.yaml 設定檔。產生設定檔的指令已經包含在 Homestead 工具裡,請執行下方的指令:
cd Homestead
init.bat
將會產生 Homstead.yaml 這個設定檔。
在使用 Homestead 前,需要設定 Homstead.yaml 這個檔案。接下來會簡單介紹各屬性的功能,沒介紹的話就是我還尚未使用過,圖片為初始值:
ssh-keygen -t rsa -C "your_email@example.com"
指令產生,請檢查路徑是否正確,如果路徑錯誤或是沒有 SSH 金鑰,將無法啟動 Homestead。folders:
- map: D:/code
to: /home/vagrant/code
cd Homestead
vagrant up
由於本機端並沒有 PHP、Composer 等指令可以使用,所以我們要先使用指令登入虛擬機:
vagrant ssh
code 資料夾是虛擬機和本地端之間連結的共享資料夾,當我們在 code 資料夾裡建立檔案時,就會同步到本地端的 code 資料夾上。
cd code
laravel new laravel
接著,我們要幫專案設定一個 Nginx 的虛擬站台,需要修改 Homestead.yaml 的 sites 屬性:
sites:
- map: laravel.test
to: /home/vagrant/code/laravel/public
在上一個步驟中,您會看到我們站台的網址是 laravel.test,但這個網址只是拿來開發使用,實際上並不存在。所以我們必須在本機上設定 DNS 對應,讓瀏覽器輸入這個網址時,會強制導向到虛擬機的 ip (192.168.10.10)。
所以請以系統管理員編輯 C:\Windows\System32\drivers\etc\hosts
這個檔案,您需要新增一行,如下方的範例:
192.168.10.10 laravel.test
由於我們更動了 Homestead.yaml 這個檔案,所以要讓虛擬機重新讀取設定,請在 ~/Homestead 底下執行指令:
vagrant reload --provision
完成後,就可以打開瀏覽器,輸入網址:http://laravel.test 就可以看到 Laravel 的預設啟動畫面。
恭喜你已完成最麻煩的建置環境步驟,只要做過一次後,之後常用的指令就只剩下這幾個:
vagrant up
vagrant ssh
vagrant suspend
vagrant halt
vagrant reload --provision